/**
 * Copyright (c) 2009-2012 XTEAM
 * All rights reserved.
 */
/**
 * File：ISysCfgDao.java
 * History:
 *         2012-6-12: Initially created, Chrise.
 */
package com.xteam.ecsystem.dao;

import java.util.List;

import com.xteam.ecsystem.entities.SysSystemConfig;
import com.xteam.ecsystem.utils.PageCenterStation;

/**
 * 系统配置数据访问接口。
 * @author Chrise
 */
public interface ISysCfgDao {
	
	/**
	 * 无效名称。
	 */
	public static final String INVALID_NAME = null;
	
	/**
	 * 无效状态。
	 */
	public static final int INVALID_STATE = Integer.MAX_VALUE;
	
	/**
	 * 获取指定网站名称和状态的配置（网站名称使用模糊查询）。
	 * @author Chrise 2012-6-12
	 * @param state
	 * @param first
	 * @param max
	 * @return
	 */
	public PageCenterStation<SysSystemConfig> getConfigsByNameAndState(int state, int first, int max);
	
	/**
	 * 修改指定配置的状态。
	 * @author Chrise 2012-6-12
	 * @param id
	 * @param state
	 */
	public void updateState(String id, int state);
	
	/**
	 * 批量删除指定的配置。
	 * @author Chrise 2012-6-12
	 * @param ids
	 */
	public void deleteConfigs(List<String> ids);
	
	/**
	 * 检查指定网站名称的配置是否存在。
	 * @author Chrise 2012-6-12
	 * @param name
	 * @return
	 */
	public boolean isExist(String name);
	
	/**
	 * 检查除指定配置外是否存在网站名称相同的配置。
	 * @author Chrise 2012-6-12
	 * @param id
	 * @param name
	 * @return
	 */
	public boolean isExist(String id, String name);
	
	/**
	 * 插入指定配置。
	 * @author Chrise 2012-6-12
	 * @param ssc
	 */
	public void insertConfig(SysSystemConfig ssc);
	
	/**
	 * 修改指定配置。
	 * @author Chrise 2012-6-12
	 * @param ssc
	 */
	public void updateConfig(SysSystemConfig ssc);
	
	/**
	 * 获取指定的配置。
	 * @author Chrise 2012-6-12
	 * @param id
	 * @return
	 */
	public SysSystemConfig getConfig(String id);
	
	/**
	 * 获取指定状态的配置。
	 * @author Chrise 2012-6-15
	 * @param state
	 * @return
	 */
	public List<SysSystemConfig> getConfigsByState(int state);
}
